본문으로 건너뛰기

SVG 최적화

9. SVG 최적화

SVG 최적화는 파일 크기를 줄이고 성능을 향상시키기 위해 불필요한 코드와 중복된 요소를 제거하는 과정입니다. 최적화된 SVG 파일은 웹페이지 로딩 시간을 단축하고, 네트워크 대역폭을 절약하며, 사용자 경험을 향상시킬 수 있습니다. 이 섹션에서는 SVG 파일을 최적화하는 방법과 도구를 소개합니다.

9.1 파일 크기 줄이기

SVG 파일 크기를 줄이는 방법에는 불필요한 코드 제거, 압축 기법을 사용한 최적화 등이 있습니다.

9.1.1 불필요한 코드 제거

  • 불필요한 공백 및 주석 제거: 코드 내 불필요한 공백, 줄바꿈, 주석은 SVG의 가독성을 높이지만 파일 크기를 증가시킬 수 있습니다. 이러한 부분을 제거하여 파일 크기를 줄일 수 있습니다.
  • 중복된 속성 제거: SVG 요소에 중복된 스타일이나 속성이 있을 경우, 이를 한 번만 정의하거나 제거함으로써 코드 크기를 줄일 수 있습니다.
  • 명시적 좌표 제거: 기본값이거나 불필요한 x, y, width, height 등의 좌표 값이 명시된 경우 제거할 수 있습니다.

9.1.2 압축 기법

SVG는 XML 형식이므로, gzip과 같은 압축 기법을 사용하여 상당한 파일 크기 감소를 기대할 수 있습니다. 대부분의 브라우저는 gzip 압축된 SVG를 자동으로 해제하므로, 압축을 사용하면 파일 크기를 대폭 줄일 수 있습니다.

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<!-- 필요 없는 공백과 주석 제거된 SVG -->
<rect x="50" y="50" width="100" height="100" fill="blue" />
</svg>

9.2 코드 최적화 팁

SVG 코드를 최적화하면 유지보수성이 향상되고, 불필요한 중복을 피할 수 있습니다. 이를 통해 SVG 파일을 더욱 효율적으로 관리할 수 있습니다.

9.2.1 간결한 코드 작성

SVG 코드 작성 시 가능한 한 간결하게 작성하는 것이 중요합니다. 중복되는 코드나 불필요한 속성, 요소를 제거하는 것이 최적화의 핵심입니다.

  • 중복 스타일의 제거: 여러 SVG 요소에 동일한 스타일이 적용될 경우, 인라인 스타일 대신 <style> 태그를 사용하거나 CSS 클래스를 정의하여 코드 중복을 줄일 수 있습니다.

9.2.2 재사용 가능한 코드 구조

  • 심볼과 재사용: 동일한 요소를 여러 번 사용해야 한다면, <symbol><use> 태그를 사용하여 동일한 코드의 반복을 줄일 수 있습니다. 이를 통해 코드 재사용성을 높이고, 파일 크기를 줄일 수 있습니다.

  • 그룹화: 비슷한 속성을 가진 SVG 요소들은 <g> 태그를 사용하여 그룹화할 수 있습니다. 이를 통해 공통 속성을 한 번만 정의하고, 코드 중복을 줄일 수 있습니다.

9.3 도구 소개

SVG 파일 최적화를 도와주는 다양한 도구들이 존재합니다. 이러한 도구들은 불필요한 코드를 자동으로 제거하거나, 중복된 속성을 정리하여 파일 크기를 줄이고 성능을 향상시킬 수 있도록 도와줍니다. 여기서는 대표적인 SVG 최적화 도구인 SVGOSVGOMG에 대해 소개하겠습니다.

9.3.1 SVGO (SVG Optimizer)

SVGO는 가장 널리 사용되는 SVG 최적화 도구 중 하나로, 불필요한 코드, 중복된 속성, 메타데이터 등을 자동으로 제거하여 SVG 파일 크기를 줄여줍니다. SVGO는 Node.js 기반의 CLI(Command Line Interface) 도구로, 명령어를 통해 SVG 파일을 빠르고 효율적으로 최적화할 수 있습니다.

SVGO 설치 및 사용 방법
  1. Node.js 설치: 먼저 Node.js가 설치되어 있어야 합니다. Node.js가 설치되어 있지 않다면 Node.js 공식 사이트에서 설치할 수 있습니다.

  2. SVGO 설치: SVGO를 전역으로 설치합니다.

npm install -g svgo
  1. SVGO 사용: 설치 후, 최적화할 SVG 파일에 대해 아래 명령어를 실행합니다.
svgo input.svg -o output.svg
  • input.svg: 최적화할 SVG 파일
  • output.svg: 최적화된 파일을 저장할 위치
  1. 추가 설정: SVGO는 다양한 플러그인을 통해 최적화 옵션을 조정할 수 있습니다. 필요한 설정은 svgo.config.js 파일을 통해 추가할 수 있습니다.

주요 최적화 작업

  • 불필요한 메타데이터 제거
  • 불필요한 공백 및 주석 제거
  • 기본값이 명시된 속성 제거
  • 중복된 코드 압축